compile_gml(DynamicWidgetContainerControls.gml DynamicWidgetContainerControls.cpp)

compile_gml(AboutDialog.gml AboutDialogGML.cpp)
stringify_gml(DatePickerDialog.gml DatePickerDialogGML.h date_picker_dialog_gml)
compile_gml(EmojiInputDialog.gml EmojiInputDialogGML.cpp)
compile_gml(FontPickerDialog.gml FontPickerDialogGML.cpp)
compile_gml(FilePickerDialog.gml FilePickerDialogGML.cpp)
compile_gml(IncrementalSearchBanner.gml IncrementalSearchBannerGML.cpp)
compile_gml(PasswordInputDialog.gml PasswordInputDialogGML.cpp)

set(SOURCES
    AboutDialog.cpp
    AboutDialogGML.cpp
    AbstractButton.cpp
    AbstractScrollableWidget.cpp
    AbstractSlider.cpp
    AbstractTableView.cpp
    AbstractThemePreview.cpp
    AbstractView.cpp
    AbstractZoomPanWidget.cpp
    Action.cpp
    ActionGroup.cpp
    Application.cpp
    AutocompleteProvider.cpp
    BoxLayout.cpp
    Breadcrumbbar.cpp
    Button.cpp
    Calendar.cpp
    CheckBox.cpp
    Clipboard.cpp
    ColorInput.cpp
    ColorPicker.cpp
    ColumnsView.cpp
    ComboBox.cpp
    CommandPalette.cpp
    CommonActions.cpp
    CommonLocationsProvider.cpp
    CommonMenus.cpp
    ConnectionToWindowManagerServer.cpp
    ConnectionToWindowServer.cpp
    DatePicker.cpp
    Desktop.cpp
    Dialog.cpp
    DisplayLink.cpp
    DragOperation.cpp
    DynamicWidgetContainer.cpp
    DynamicWidgetContainerControls.cpp
    EditingEngine.cpp
    EmojiInputDialog.cpp
    EmojiInputDialogGML.cpp
    Event.cpp
    FileIconProvider.cpp
    FilePicker.cpp
    FilePickerDialogGML.cpp
    FileSystemModel.cpp
    FilteringProxyModel.cpp
    FontPicker.cpp
    FontPickerDialogGML.cpp
    Frame.cpp
    GitCommitLexer.cpp
    GitCommitSyntaxHighlighter.cpp
    GlyphMapWidget.cpp
    GML/AutocompleteProvider.cpp
    GML/Lexer.cpp
    GML/Parser.cpp
    GML/SyntaxHighlighter.cpp
    GroupBox.cpp
    HeaderView.cpp
    Icon.cpp
    IconView.cpp
    ImageWidget.cpp
    IncrementalSearchBanner.cpp
    IncrementalSearchBannerGML.cpp
    INILexer.cpp
    INISyntaxHighlighter.cpp
    InputBox.cpp
    JsonArrayModel.cpp
    Label.cpp
    LabelWithEventDispatcher.cpp
    Layout.cpp
    LazyWidget.cpp
    LinkLabel.cpp
    ListView.cpp
    Menu.cpp
    Menubar.cpp
    MenuItem.cpp
    MessageBox.cpp
    Model.cpp
    ModelIndex.cpp
    ModelSelection.cpp
    MouseTracker.cpp
    MultiView.cpp
    Notification.cpp
    NumericInput.cpp
    Object.cpp
    OpacitySlider.cpp
    Painter.cpp
    PasswordInputDialog.cpp
    PasswordInputDialogGML.cpp
    PathBreadcrumbbar.cpp
    PersistentModelIndex.cpp
    Process.cpp
    ProcessChooser.cpp
    Progressbar.cpp
    Property.cpp
    PropertyDeserializer.cpp
    RadioButton.cpp
    RangeSlider.cpp
    RegularEditingEngine.cpp
    ResizeCorner.cpp
    RunningProcessesModel.cpp
    ScreenLayout.cpp
    ScrollableContainerWidget.cpp
    Scrollbar.cpp
    SeparatorWidget.cpp
    SettingsWindow.cpp
    Shortcut.cpp
    Slider.cpp
    SortingProxyModel.cpp
    SpinBox.cpp
    Splitter.cpp
    StackWidget.cpp
    Statusbar.cpp
    TableView.cpp
    TabWidget.cpp
    TextBox.cpp
    TextDocument.cpp
    TextEditor.cpp
    Toolbar.cpp
    ToolbarContainer.cpp
    Tray.cpp
    TreeView.cpp
    TreeViewModel.cpp
    UndoStack.cpp
    ValueSlider.cpp
    Variant.cpp
    VimEditingEngine.cpp
    Widget.cpp
    Window.cpp
    Wizards/AbstractWizardPage.cpp
    Wizards/CoverWizardPage.cpp
    Wizards/WizardDialog.cpp
    Wizards/WizardPage.cpp
)

set(GENERATED_SOURCES
    ../../Services/Clipboard/ClipboardClientEndpoint.h
    ../../Services/Clipboard/ClipboardServerEndpoint.h
    ../../Services/NotificationServer/NotificationClientEndpoint.h
    ../../Services/NotificationServer/NotificationServerEndpoint.h
    ../../Services/WindowServer/WindowClientEndpoint.h
    ../../Services/WindowServer/WindowManagerClientEndpoint.h
    ../../Services/WindowServer/WindowManagerServerEndpoint.h
    ../../Services/WindowServer/WindowServerEndpoint.h
    DatePickerDialogGML.h
)

serenity_lib(LibGUI gui)
target_link_libraries(LibGUI PRIVATE LibCore LibELF LibFileSystem LibGfx LibImageDecoderClient LibIPC LibThreading LibRegex LibConfig LibUnicode LibURL)
target_link_libraries(LibGUI PUBLIC LibSyntax)
